跳到主要内容

过渡接口(Transition)

当 Transition 的活动子项变化时,渲染出站("from")与入站("to")子项之间的视觉变化。活动子项由原生层选择(可数据绑定,风格类似 Solo);脚本只负责如何将这两个子项合成。将所需输入(例如导演 Artboard、数值、曲线)声明为普通脚本输入,并按你喜欢的方式驱动效果。

更多信息见:过渡脚本(Transition Scripts)

字段(Fields)

managesTo

当为 false 时,入站("to")子项通过画板绘制循环正常渲染,并作为 nil 传给 draw;脚本只合成出站("from")子项(适用于新内容已在舞台上的 "reveal" 过渡)。默认为 true(脚本合成两个子项)。在每次过渡开始时读取,因此可在 init 或 changed 中设置。

方法(Methods)

init

init(self: T, context: Context) -> boolean

过渡创建时调用一次。

changed

changed(self: T, from: TransitionChild?, to: TransitionChild?, direction: number) -> ()

当活动子项变化时调用。from 是出站子项(首次显示时为 nil);to 是入站子项。当 to 的组合索引高于 fromdirection 为 1,低于时为 -1,未知时为 0(例如首次显示)。在此处重置进度时钟 / 定位你驱动的任何输入。在被中断时会再次调用,此时 from 是先前入站的子项。

advance

advance(self: T, seconds: number) -> boolean

过渡进行中每帧调用。推进你自己的进度(以及你驱动的任何输入)。运行中返回 true;返回 false 表示完成,之后运行时会退役出站子项,并恢复正常绘制活动子项。

draw

draw(self: T, renderer: Renderer, from: TransitionChild?, to: TransitionChild?) -> ()

合成两个子项。将每次 child:draw(renderer) 包在渲染器状态(save / modulateOpacity / transform / clipPath / restore)中,以编写交叉淡入淡出、滑动、擦除、缩放和自定义效果。任一子项都可能为 nil(见 managesTo)。

看完还有疑问?进群交流下!
与众多 Rive 创作者、开发者一起交流探讨与答疑解惑。
加入交流群